﻿using ExcelUnity.Core;
using ExcelUnity.Exporter.Attributes;
using ExcelUnity.Exporter.Attributes.Styles;
using NPOI.SS.UserModel;
using System.Collections.Generic;

namespace ExcelUnity.Test.Export.Dtos
{
    /// <summary>
    /// 互联互通应用效果
    /// </summary>
    public class ConnectivityApplicationEffect
    {
        /// <summary>
        /// 互联互通应用效果内容
        /// </summary>
        public IEnumerable<ConnectivityApplicationEffectContent> ConnectivityApplicationEffectContents { get; set; } = null!;

        /// <summary>
        /// 总分
        /// </summary>
        public string TotalPoints { get; set; }

        /// <summary>
        /// 目标得分
        /// </summary>
        public string TargetPoints { get; set; }

        /// <summary>
        /// 当前得分
        /// </summary>
        public string CurrPoints { get; set; }
    }

    /// <summary>
    /// 互联互通应用效果
    /// </summary>
    public class ConnectivityApplicationEffectContent
    {
        /// <summary>
        /// 分类
        /// </summary>
        [MergeRowAlone]
        [PrimaryKey]
        [RowHeight(30)]
        [ColumnWidth(7 * 256, 9 * 256)]
        [ColumnName("分类")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string TypeName { get; set; }

        /// <summary>
        /// 指标属性
        /// </summary>
        [MergeRow]
        [ColumnWidth(7 * 256, 9 * 256)]
        [ColumnName("指标属性")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string TargetProperty { get; set; }

        /// <summary>
        /// 评审内容
        /// </summary>
        [MergeRow]
        [ColumnWidth(16 * 256, 18 * 256)]
        [ColumnName("评审内容")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string ReviewContent { get; set; }

        /// <summary>
        /// 评测指标
        /// </summary>
        [MergeRow]
        [ColumnWidth(28 * 256, 30 * 256)]
        [ColumnName("评测指标")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string EvaluateKPI { get; set; }

        /// <summary>
        /// 等级要求
        /// </summary>
        [MergeRowAlone]
        [ColumnWidth(28 * 256, 30 * 256)]
        [ColumnName("等级要求")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string StandardRange { get; set; }
        /// <summary>
        /// 分值
        /// </summary>
        [ColumnName("分值")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string Grade { get; set; }

        /// <summary>
        /// 等级要求
        /// </summary>
        [ColumnName("等级要求")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string LevelLimit { get; set; }

        /// <summary>
        /// 最高分标志
        /// </summary>
        [ColumnName("最高分标志")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string HighestSign { get; set; }

        /// <summary>
        /// 是否满足
        /// </summary>
        [ColumnName("是否满足")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string IsSatisfy { get; set; }

        /// <summary>
        /// 对应系统
        /// </summary>
        [ColumnName("对应系统")]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string SystemName { get; set; }

        /// <summary>
        /// 问题分析
        /// </summary>
        [ColumnName("问题分析")]
        [ColumnWidth(17 * 256, 19 * 256)]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string QuestionAnalyze { get; set; }

        /// <summary>
        /// 改造思路
        /// </summary>
        [ColumnName("改造思路")]
        [ColumnWidth(34 * 256, 36 * 256)]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string RemouldThinking { get; set; }

        /// <summary>
        /// 问卷资料
        /// </summary>
        [ColumnName("问卷资料")]
        [MergeRowAlone]
        [ColumnWidth(17 * 256, 19 * 256)]
        [HeaderStyle(isBold: true, showAllBorder: true, horizontalAlign: HorizontalAlignment.Center)]
        [ColumnStyle(showAllBorder: true, wrapText: true, horizontalAlign: HorizontalAlignment.Center)]
        public string QuestMaterial { get; set; }
    }
}